/**
 * 
 */
package br.elite.dao;

import java.util.List;

import javax.persistence.PersistenceException;

import br.elite.domain.Usuario;

/**
 * @author antonio 05-04-2011
 *
 */
public interface UsuarioDAO {
	
	public static final String  EJB_SERVICE_NAME = "/br/elite/dao/UsuarioDAO";
	
	/**
	 * Metodo que busca todos os usuarios.
	 * 
	 * @param usuario
	 * @return Uma lista de usuarios.
	 * @throws PersistenceException
	 */
	public List<Usuario> buscar(Usuario usuario) throws PersistenceException;
	
	/**
	 * Metodo que busca todos os usuarios.
	 * 
	 * @param restricao
	 * @return Uma lista de clientes.
	 * @throws PersistenceException
	 */
	public List<Usuario> buscarTodos() throws PersistenceException;

	/**
	 * M&eacute;todo que salva um cliente na base de dados.
	 * 
	 * @param cliente
	 * @throws PersistenceException
	 */
	public void  salvar(Usuario usuario) throws PersistenceException;
	
	/**
	 * M&eacute;todo que consulta o cliente pelo c&oacute;digo informado.
	 * 
	 * @param id
	 * @return
	 * @throws PersistenceException
	 */
	public Usuario buscarUsuarioPorCodigo(Long id) throws PersistenceException;

	/**
	 * M&eacute;todo exclui um usuario cadastrado na base.
	 * 
	 * @param cliente
	 * @throws PersistenceException
	 */
	public void deletar(Usuario usuario) throws PersistenceException;

}
